﻿using System.Collections.Generic;
using DataFiller.DataStorage.Holders;
using DataFiller.DataStorage.Interpreters;
using DataFiller.DataStorage.Regions;

namespace DataFiller.DataStorage.Store
{
    public interface IDataMap<T>
    {
        /// <summary>
        /// fill data into the region
        /// </summary>
        /// <param name="key">region key</param>
        /// <param name="holder">data holder</param>
        void FeedData(T key, IDataHolder holder);
        void RegistInterpreterContainer(InterpreterContainer iContainer);
        void AddRegion(T key, IDataRegion<T> region);

        IDataRegion<T> GetRegion(T key);
        List<IDataRegion<T>> GetRegions();
        void ClearRegion();
    }
}
